10 ;++++++++++++++++++++++++++++++++ 20 ;+++++ +++++ 30 ;+++++ HARDCOPY FUER +++++ 40 ;+++++ CENTRONICS DRUCKER +++++ 50 ;+++++ (STAR SG) +++++ 60 ;+++++ AM USER-PORT +++++ 70 ;++++++++++++++++++++++++++++++++ 80 ;+++++ +++++++++++ 90 ;+++++ VON +++++++++++ 100 ;+++++ RICHARD GRESEK +++++++++++ 110 ;+++++ +++++++++++ 120 ;++++++++++++++++++++++++++++++++ 130 .LI1,3 140 .BA$7000 150 ; 160 ; 170 ;++++++++++++++++++++++++++++++++ 180 ;AUSRECHNEN DER +++++++++++++ 190 ;STARTADRESSE DER +++++++++++++ 200 ;BITMAP,PRUEFEN +++++++++++++ 210 ;OB GRAPHIC EIN +++++++++++++ 220 ;++++++++++++++++++++++++++++++++ 230 START LDA$D018;BITS 12-13 240 AND#$0C;DER BITMAP 250 ASL;INS HI-BYTE 260 ASL 270 ASL 280 ASL 290 STANBY+2 300 LDA$DD00;BITS14-15 AUS CIA2 HOLEN 310 LSR 320 RORNBY+2;INS HI-BYTE SCHIEBEN 330 LSR 340 RORNBY+2 350 LDANBY+2;BITS 1-2 DER CIA2 LOW-AKTIV 360 EOR#$C0;DESHALB UMKEHREN MIT EOR #%1100 0000 370 STANBY+2;UND ZURUCK INS HI-BYTE DES BITMAPZEIGER 380 LDA#00 390 STANBY+1;LO-BYTE DES BITMAPZEIGER = 0 400 LDA$D011;BIT5=1 =>HI-RES GRAPHIC EIN=> AUSDRUCKEN 410 AND#32 420 BNEBEGIN 430 RTS;BIT5=0 >ZURUCK INS HAUPTPROGRAMM 440 ;++++++++++++++++++++++++++++++++ 450 ;HAUPTPROGRAMM ++++++++++++++++ 460 ;++++++++++++++++++++++++++++++++ 470 BEGIN SEI;INTERRUPT ABSCHALTEN 480 LDA#$35;GANZES RAM BIS AUF I/O 490 STA01;EINBLENDEN 500 LDA#$FF;PORT B CIA2 AUF AUGANG 510 STA$DD03 520 LDA#<(ZEABST+3);ENDADRESSE 530 LDY#>(ZEABST+3) 540 STACONTL+1 550 STYCONTH+1 560 LDA#<(ZEABST);STARTADRESSE 570 LDY#>(ZEABST);DER BYTEFOLGE FUER ZEILENABSTAND 8/72 INCH 580 JSRSTROUT;BYTEFOLGE AUF PARALLEL-PORT AUSGEBEN 590 LDA#25;25 ZEILEN*40 SPALTEN 600 STAZEILE 610 ZEI LDA#40 620 STASPALTE 630 SPA LDA#8;8 BYTE IN JEDEM KAESTCHEN 640 STABYZ 650 BY LDY#8 660 NBY LDA$6000;BYTE AUS BITMAP HOLEN 670 LOOP LDX#01;+++++++++++++++++++++++++++++++++++++++ 680 LOO ROL;BIT NR.X INS CARRY 690 DEX 700 BNELOO;+++++++++++++++++++++++++++++++++++++++ 710 ST ROLSCHL;CARRY INS AKTUELLE BYTE EINFUEGEN 720 INCNBY+1;+++++++++++++++++++++++++++++++++++++++ 730 BNEWE;BITMAPZEIGER ERHOEHEN 740 INCNBY+2;+++++++++++++++++++++++++++++++++++++++ 750 WE DEY;SCHON 8 BIT ZUSAMMEN? 760 BNENBY;NEIN >NAECHSTES BYTE HOLEN 770 INCLOOP+1;NAECHSTE BITSPALTE 780 SEC 790 LDANBY+1;+++++++++++++++++++++++++++++++++++++++++++++++ 800 SBC#8;BITMAPZEIGER AUF BYTE NR.1 DER NAECHSTEN SPALTE 810 STANBY+1;SETZEN 820 LDANBY+2 830 SBC#00 840 STANBY+2;+++++++++++++++++++++++++++++++++++++++ 850 INCST+1;ZEIGER AUF AKTUELLES BYTE IM AUSGABESTRING 860 BNEWE1; ERHOEHEN 870 INCST+2;+++++++++++++++++++++++++++++++++++++++ 880 WE1 DECBYZ;ALLE 8 BYTE DES KAESTCHENS FERTIG? 890 BNEBY;NEIN=>SPRUNG 900 LDA#01;1.BITSPALTE DER NAECHSTEN SPALTE 910 STALOOP+1 920 CLC;+++++++++++++++++++++++++++++++++++++++ 930 LDANBY+1;BITMAPZEIGER AUF 1.BYTE DER NAECHSTEN SPALTE 940 ADC#8;STELLEN 950 STANBY+1 960 LDANBY+2 970 ADC#00 980 STANBY+2;+++++++++++++++++++++++++++++++++++++++ 990 DECSPALTE;ZEILE FERTIG? 1000 BNESPA;NEIN >NEACHSTE SPALTE 1010 LDA#<(ZEABST);++++++++++++++++++++++++++++++++++++++++ 1020 LDY#>(ZEABST);GRAPHIC-EINSCHALTSEQUENZ SCHICKEN 1030 STACONTL+1;(VOR JEDER ZEILE) 1040 STYCONTH+1 1050 LDA#<(EINSCH) 1060 LDY#>(EINSCH) 1070 JSRSTROUT;++++++++++++++++++++++++++++++++++++++++ 1080 LDA#<(SCHL+$140) 1090 STACONTL+1;ZUSAMMENGESTELLTE GRAPHICZEILE 1100 LDA#>(SCHL+$140) 1110 STACONTH+1;AUF EINMAL AUSGEBEN 1120 LDA#<(SCHL) 1130 STAST+1 1140 LDY#>(SCHL) 1150 STYST+2 1160 JSRSTROUT;+++++++++++++++++++++++++++++++++++++++ 1170 LDA#13;RETURN AUF DRUCKER SCHICKEN (NEUE ZEILE) 1180 JSRCOUT 1190 DECZEILE;ALLE ZEILEN FERTIG? 1200 BNEZE;NEIN>NAECHSTE ZEILE 1210 LDA#$37;BASIC+KERNAL EINSCHALTEN 1220 STA01 1230 CLI;IRQ ZULASSEN 1240 RTS 1250 ;++++++++++++++++++++++++++++++++ 1260 ;STROUT-AUSGABE EINES ++++++++ 1270 ;BELIEBIG LANGEN STRINGS ++++++++ 1280 ;AUF PARALLELPORT ++++++++ 1290 ; ++++++++ 1300 ;++++++++++++++++++++++++++++++++ 1310 STROUT STYLADE+2;HI-BYTE DER STARTADR. 1320 STALADE+1;LO-BYTE --"-- 1330 LADE LDA$2000;BYTE DES STRING HOLEN 1340 JSRCOUT;AUF PORT AUSGEBEN 1350 INCLADE+1;ZEIGER ERHOEHEN 1360 BNEWE2 1370 INCLADE+2 1380 WE2 LDALADE+2 1390 CONTH CMP#$41;HI-BYTE DER AKT. ADRESSE=HI-B(ENDADR.)? 1400 BNELADE;NEIN >WEITER 1410 LDALADE+1;LO-BYTE DER ADRESSE=LO-B(ENDADR.)? 1420 CONTL CMP#64 1430 BMILADE;NEIN >WEITER 1440 RTS;ZURUECK INS HAUPTPROGRAMM 1450 ZE JMPZEI 1460 ;----------------------------- 1470 EINSCH .BY27,103,5,64,1;SEQUENZ ZUM EINSCHALTEN DES GRAPHICMODUS 1480 ZEABST .BY27,65,8;ZEILENABSTAND 8/72 INCH 1490 ;++++++++++++++++++++++++++++++++ 1500 COUT STA$DD01;DATEN AUF LEITUNG 1510 LDA$DD0D;ICR LOESCHEN 1520 LDA$DD00; 1530 AND#$FB;PA2 (STROBE)-SIGNAL 1540 STA$DD00 1550 ORA#04;=>ZEICHEN FUER 1560 STA$DD00;'DATA AUF LEITUNG' 1570 LDA#$10;FLAG2-BUSY 1580 WARTE BIT$DD0D;BUSY LOW? 1590 BEQWARTE;+> NEIN 1600 RTS 1610 ;+++++++++++++++++++++++++++++++ 1620 ; VARIABLEN ++++++++++++ 1630 ;+++++++++++++++++++++++++++++++ 1640 ZEILE NOP;ZEILENZAEHLER 1650 SPALTE NOP;SPALTENZAEHLER 1660 BYZ NOP;BYTEZAEHLER FUER JEDES KAESTCHEN 1670 ;+++++++++++++++++++++++++++++++ 1680 SCHL NOP;ANFANG DES AUSZUGEBENDEN STRINGS